package com.example.featuresdk.core

abstract class AbstractFeatureSDK constructor(val mediator: INavigationMediator): INavigationAware {

    /**
     * the unique feature key
     */
    abstract fun featureKey(): String
    /**
     * feature label (i18n)
     */
    abstract fun label(): String

    /**
     * feature image
     */
    abstract fun entryImageId(selected: Boolean = false): Int

    open fun featureCategory(): FeatureCategory = FeatureCategory.Primary


//    /**
//     * the feature entry UI
//     */
//    @Composable
//    open fun FeatureEntryView(selected: Boolean = false) {
//        Text(text ="*****Default FeatureEntryView Composable********It Does Not Work!!!")
//        //java.lang.NoSuchMethodError: No virtual method FeatureEntryView(ZLandroidx/compose/runtime/Composer;II)V in class Lcom/example/featuresdk/core/AbstractFeatureSDK;
//    }

    override fun onEnter() {

    }

    override fun onResume() {

    }

    override fun onExit() {

    }

    override fun backable(): Boolean {
        return false
    }

    override fun back() {

    }
}

enum class FeatureCategory{
    Primary, Header
}
